This invention relates to circuit simulation, and more particularly to simulations for determining the dc operating point of circuit designs.
A large number of integrated circuits are routinely designed which contain hundreds, and even thousands of transistors. Such designs must be verified before fabrication because the fabricated circuits cannot be tested in all but a few predesignated points within the circuits (typically, only by observing the behavior of output signals). Also, the economic consequences of errors in such circuits are very significant. In analog circuits in particular, a determinations of the dc operating point (i.e. the dc operating points of all nodes in the circuit) is important because it is essential for the devices to not be driven into saturation. The dc operating point is also important for the evaluation of the circuit's dynamic response in both analog and digital circuits.
Speedy computation of the dc operating point of a semiconductor circuit has been a difficult problem since the early days of circuit simulation. With many circuits--primarily analog--engineers spend large amounts of time "fighting" a simulator to obtain the dc operating point of their circuit. In some cases, the difficulty of obtaining a dc operating point indicates that something is wrong with the circuit and suggests that a re-design is needed. In other cases, however, the difficulty is simply an artifact of the algorithm that is used to find an operating point.
One method for determining the dc operating point of a circuit is known as Newton's method, and it dates back to Newton's basic mathematical work dealing with the problem of finding x for the relationship y(x)=0, where y(x) is a non-linear function. When the value of y(x) is known for a particular x, the Newton method proceeds iteratively to find the x that yields y(x)=0. The Newton method comprises iterating between basically two steps. First, the slope of y(x) is determined at the known y(x) and a line is constructed at the known slope which contains the point y(x) and which intersects the x axis at a point x' (assuming that the slope at y(x) is non-zero). Second, the value of y(x') is evaluated. Of course, the above describes a two dimensional situation; but the extension to multi-dimensional space is straight forward.
It can be shown that for some problems the iterated solutions in Newton's method will not converge to a final solution. It can also be shown, fortunately, that when the initial known point is within a certain region of the true solution, then the Newton method will converge quickly to the true solution. This certain region is called the region of convergence.
In connection with the problem of determining the dc operating point of a circuit, the Kirchoff current equations of a circuit have the form of the Newton method (the sum of currents flowing into a node is 0), where the semiconductor devices contribute non-linear terms to the sum. The Newton procedure can be applied to the task at hand, but the problem with the Newton method is that the region of convergence is a function of the nonlinearities in the circuit, and that region is not always very large. Also, the location of that region in the space of the unknowns is not known a priori.
Variations of Newton's method have been proposed which have a wider domain of convergence. One such variation is commonly referred to as the damped Newton method. The damped Newton method is the same as the Newton method, except that at each iteration, the value of y(x') is compared to the value of y(x). When y(x') is larger in magnitude than y(x), a modifying step is introduced whereby a different x value (x") is selected, which lies between x and x' and which results in a y(x") that is smaller in magnitude than y(x). While the damped Newton method is superior to the undamped Newton method in some respects, it still has the same failure modes. Indeed, the damped Newton method has the additional failure mode of tending to settle the circuit simulation at a local minimum, which is not a solution of the circuit's dc operating point.
Another approach to the dc operating point problem is known as source stepping. It begins by setting all supply voltages to zero. At that point the circuit has an obvious operating point (the voltages at all nodes are zero). Next, the independent sources are gradually increased from zero to their final values, and at each increment the operating point is evaluated. The operating point at each new increment is evaluated by observing that when the increments are fine enough, the operating point at the previous level of voltages is a close approximation to the operating point at the current level of voltages. To find the exact operating point, an iterative procedure (such as Newton's method) can be used to correct the operating point approximations. Viewed from a different perspective, at each step, the voltages of the nodes are known approximately and it is, therefore, safe to assume that the approximate voltages are within Newton's region of convergence and, hence, Newton's method may be used with relative confidence that the procedure will converge.
Mathematically, the process of slowly incrementing the supply voltage may be described by a system of equations ##EQU1## where a control parameter t, which is a real number between 0 and 1, multiplies the value of each of the independent sources. If the above system of equations is abbreviated as F(x,t)=0, then F(x,0)=0 represents the circuit with all supplies turned off, and F(x,1)=0 represents the original circuit whose operating point is desired. Viewing each node voltage as a function of t, there is a trajectory of dc operating points x(t)=(x.sub.1 (t), . . . , x.sub.n (t)) as t sweeps from 0 to 1.
To determine the operating point at F(x,t.sub.i +.delta.) when the operating point at F(x,t.sub.i) is known, conventional techniques may be employed that basically develop a measure of the rate of change in the dc operating point with respect to the dc operating point at t.sub.i and with respect to t.sub.i.
Unfortunately, the source stepping procedure is not always robust. If the circuit has multiple operating points, then for some critical value of t the solution trajectory will attempt to split, or bifurcate. Such bifurcations cause numerical problems (since there is no well-defined derivative with respect to t at the point of bifurcation). It may be noted, as an aside, that this condition is not unusual. Indeed, a circuit may even have a unique operating point at the final value of all the supplies, and still have multiple operating points at intermediate values of the supplies. In such a case, the success or failure of the source stepping procedure will be sensitive to the relative rate at which the various sources are turned on.
Another stepping technique is known as GMIN stepping. In this technique, artificial conductances are inserted between each node and ground and a global parameter--GMIN--sets the value of these conductances. Initially, GMIN is set to a very large value, which effectively "shorts" each node to ground. In a way, this condition is akin to dropping all voltages to zero and, typically, a dc solution is obtained easily at this point. Then GMIN is reduced in steps, using the operating point from the previous value of GMIN as a starting point for the iterative solution at the next value of GMIN. Again, the approximations at each step may be replaced with corrected values with the aid of the Newton method.
This method is indeed very similar to the source stepping method and it has the same difficulty with potential bifurcations in the solution trajectory. This potential exists with GMIN stepping because there is only a single degree of freedom in the system; i.e., the value of GMIN. Also, this method allows GMIN to only decrease which, in some circumstances, makes it impossible to advance along the above-described trajectory.
The above-described source stepping and GMIN stepping methods are sometimes described as homotopy or continuation methods. The homotopy approach involves forming a simplified version of the circuit whose operating point is needed, finding an operating point of this easier circuit, then "sweeping" some quantity to generate a trajectory of solutions that leads to the operating point of the original circuit.
Once the operating point problem has been formulated as the solution for a system of nonlinear equations, the intuitive idea of sweeping can be made mathematically precise, and numerical algorithms have been developed to follow the solution trajectories. Indeed, software packages are readily available for carrying out the numerical calculations involved, such as the package called PITCON (from the University of Pittsburgh).
In short, the art of circuit evaluations to determine the dc operating point has progressed to the point of using number of homotopy techniques, but a number of important drawbacks still force the skilled designers to experiment with circuit parameter modifications whenever the simulations ran into computation problems.